#ifndef _PLAYER_H_
#define _PLAYER_H_

#include "team.h"

/* Player - represents a player in the game, whether human controlled or not
* Player has a team (the prototypes of his army)
* Player has a side
*/
class Player
{
public:
	//Can be used in the panel classes that can take a slot
	class CommandFlag;
	class CommandFlagSlot {
		CommandFlag* flagInSlot;
		bool hasFlag();
		void giveFlag(CommandFlag* flag);
		CommandFlag* removeFlag();
	};

	class CommandFlag {
		CommandFlagSlot* mySlot;
		CommandFlag(Player* player);
		bool inSlot();
	};

	PlayerSide side;
	PlayerType type;
	Uint16 tokenCount; //Starts at 2? 3?
	std::vector<CommandFlag*> commandFlags;
	Team team;

	void LoadTeam(Team &archetype);
	Player(PlayerSide playerSide);
	~Player();
};

#endif